26 IF CU = N1 THEN I = N3 +(XN >277 OR XN <2 OR YN >189 OR YN <2):J = N2 +N2 *(X2 >277 OR X2 <2 OR Y2 >189 OR Y2 <2): XDRAW I AT XN,YN: XDRAW J AT X2,Y2: XDRAW N4 AT XN,Y2: XDRAW N4 AT X2,YN: XDRAW I AT XN,YN: XDRAW J AT X2,Y2: XDRAW N4 AT XN,Y2: XDRAW N4 AT X2,YN: GOTO 32
28 POKE OL +N3,XN - INT(XN/TF) *TF: POKE OL +N4, INT(XN/TF): POKE OL +N5,YN: POKE OL +N6,X2 - INT(X2/TF) *TF: POKE OL +N7, INT(X2/TF): POKE OL +N8,Y2
30 CALL OL: FOR I = N1 TO N9: NEXT : CALL OL: IF PD <0 AND PEEK(Q) <CC THEN 30
32 IF PD <1 THEN 42
34 XN = INT( PDL(0) *XP):YN = INT( PDL(1) *YP):YN = INT( PDL(1) *YP): IF C < >8 AND DR >0 THEN HPLOT XN,YN TO XO,YO:XO = XN:YO = YN
36 IF C = 8 AND DR >0 THEN POKE OL +3,XN - INT(XN/TF) *TF: POKE OL +4, INT(XN/TF): POKE OL +5,YN: POKE OL +6,X2 - INT(X2/TF) *TF: POKE OL +7, INT(X2/TF): POKE OL +8,Y2: CALL OL:X2 = XN:Y2 = YN
38 IF PEEK( -16287) >127 THEN A$ = "Z": GOTO 198
40 IF PEEK( -16286) >127 THEN K = 173: GOTO 70
42 K = PEEK(Q): IF K <CC THEN 22
44 POKE CL,0: IF K = 148 OR K = CC OR K = CM OR K = 210 OR (K >159 AND K <193) THEN 64
46 IF K = SC THEN SP = 50: GOTO 42
48 BX = 0:CI = 0:YO = YN:XO = XN: IF K <205 AND K < >193 THEN XN = XO -SP *(K = BS) +SP *(K = 149) -(K = 203) +(K = 204): GOTO 54
50 YN = YO +SP *(K = 218) -SP *(K = 193) +(K = 216) -(K = 211): IF DR >0 AND XO - INT(XO/2) *2 = 0 THEN XO = XO +(C = 1 OR C = 5):XN = XO: GOTO 54
52 IF DR >0 AND XO - INT(XO/2) *2 = 1 THEN XO = XO +(C = 2 OR C = 6) -(XO = 279):XN = XO
54 XN = XN -(XN >XX) *(XN -XX):XN = XN -XN *(XN <0):YN = YN -(YN >YY) *(YN -YY):YN = YN -YN *(YN <0): IF DR <0 THEN XO = XN:YO = YN: GOTO 60
56 IF C = 8 THEN SCALE= 1 +(SP -1) *(K >216 OR K <203): ROT= 0 +16 *(K >215) +48 *(K = 193 OR K = 211) +32 *(K = BS OR K = 203): XDRAW N4 AT XN,YN: SCALE= 1: ROT= 0: GOTO 60
58 HPLOT XO,YO TO XN,YN: IF (X <279) AND (C = 7 OR C = 4) AND (K >210 OR K = 193) THEN HPLOT XO +1,YO TO XN +1,YN
60 IF PD >0 THEN GOSUB 18: VTAB 22: HTAB 8: INVERSE : PRINT G$" YOU ARE IN PADDLE MODE. ": NORMAL : PRINT : HTAB 10: PRINT " USE 7-KEY TO SWITCH."G$;: GOSUB 296: GOTO 282
62 SP = ST: GOTO 22
64 IF K = 148 THEN M$ = "T":TX = 0: GOTO 476
66 IF K < >186 THEN BX = 0
68 IF K < >176 THEN CI = 0
70 IF K < >173 THEN 82
72 IF C = 8 THEN 78
74 HPLOT XN,YN TO X2,Y2 TO XN,YN: IF X2 = XN AND (C = 7 OR C = 4) AND X2 <279 THEN HPLOT XN +1,YN TO X2 +1,Y2
76 GOTO 80
78 POKE OL +3,XN - INT(XN/TF) *TF: POKE OL +4, INT(XN/TF): POKE OL +5,YN: POKE OL +6,X2 - INT(X2/TF) *TF: POKE OL +7, INT(X2/TF): POKE OL +8,Y2: CALL OL
94 IF ABS(XN -X2) >255 THEN SCALE= ABS(XN -X2) -254: ROT= 0 +32 *(XN >X2): XDRAW 4 AT X2,YN: XDRAW 4 AT X2,Y2
96 SCALE= 1: IF MF THEN RETURN
98 GOTO 108
100 I = X2 - INT(X2/2) *2:J = XN - INT(XN/2) *2: IF ((C = 1 OR C = 5) AND I = 0) OR ((C = 2 OR C = 6) AND I = 1) THEN X2 = X2 +1 -(X2 = 279)
102 IF ((C = 1 OR C = 5) AND J = 0) OR ((C = 2 OR C = 6) AND J = 1) THEN XN = XN +1 -(XN = 279)
104 HPLOT X2,YN TO XN,YN TO XN,Y2 TO X2,Y2 TO X2,YN: IF C = 4 OR C = 7 THEN J = X2 +1 -(X2 = 279): HPLOT J,YN TO J,Y2:J = XN +1 -(XN = 279): HPLOT J,YN TO J,Y2
106 GOTO 282
108 IF BX = 1 THEN 282
110 BX = 0: FOR I = Y2 TO YN STEP -(YN <Y2) +(YN >Y2): IF C <8 AND NOT MX THEN HPLOT X2,I TO XN,I: IF PEEK(Q) < >CM THEN NEXT
112 IF C <8 AND NOT MX THEN POKE CL,0: GOTO 22
114 IF C = 8 THEN 122
116 HCOLOR= C1: IF MX = 1 AND I - INT(I/2) *2 = 0 THEN HCOLOR= C2
118 HPLOT X2,I TO XN,I: IF PEEK(Q) = CM THEN POKE CL,0: GOTO 282
160 IF K = 160 THEN DR = DR * -1:SP = ST:XO = XN:YO = YN: HPLOT XN,YN: FOR K = 1 TO 4: FOR J = 1 TO 2:I = PEEK(Q +48): NEXT : FOR J = 1 TO 30: NEXT : NEXT : GOTO 368
162 GOTO 164
164 IF K < >176 THEN 190
166 IF X2 = XN OR Y2 = YN THEN 288
168 IF MX THEN J = ABS(Y2 -YN): IF J - INT(J/2) *2 = 1 THEN Y2 = Y2 +(Y2 <YY)
170 POKE GT,0:CI = CI +1: IF CI >2 THEN CI = 1
172 XDRAW N4 AT XN,YN: XDRAW N4 AT X2,Y2: XDRAW N4 AT XN,Y2: XDRAW N4 AT X2,YN
178 FOR I = 1 TO 40:J = 6.28 *I/40:XO = XC +( ABS(X2 -XN) -1)/2 * COS(J):YO = YC +( ABS(Y2 -YN) -1)/2 * SIN(J): HPLOT TO XO,YO: IF PEEK(Q) = CM THEN POKE CL,0: GOTO 188
180 IF PEEK(Q) < >176 THEN NEXT : GOTO 188
182 D = ABS(Y2 -YN): FOR J = 1 TO INT(D/2):H = (D/2) -J:I = .5 + ABS(X2 -XN) * SQR(.25 -(H *H)/(D *D)): HCOLOR= C -5 *(C = 8): IF J - INT(J/2) *2 = 0 AND MX THEN HCOLOR= C2
184 HPLOT ABS(XC -I),YC +H TO XC +I,YC +H: HPLOT ABS(XC -I),YC -H TO XC +I,YC -H: IF PEEK(Q) = CM THEN POKE CL,0:CI = 0: GOTO 188
186 NEXT
188 XDRAW 4 AT XN,YN: XDRAW 4 AT X2,Y2: XDRAW 4 AT XN,Y2: XDRAW 4 AT X2,YN: POKE CL,0: POKE GT,0:KE = -1: GOTO 288
190 IF K = CM THEN A$ = "Z": GOTO 198
192 IF K = 210 THEN 208
194 IF K < >184 THEN 214
196 GOSUB 18: VTAB 22: PRINT "--------------- X = XO CURSOR": PRINT "R = ROTATE LEFT B = RUBBER BAND Z = ZERO OFFSET N = NO CURSOR";: VTAB 21: HTAB 1: PRINT "MODIFY CURSOR:";: GET A$
198 IF A$ = "Z" THEN X2 = XN:Y2 = YN: FOR I = 1 TO 20: XDRAW N2 AT XN,YN: XDRAW N3 AT XN,YN: NEXT
200 IF A$ = "X" THEN CU = 1
202 IF A$ = "N" THEN CU = 0
204 IF A$ = "B" THEN CU = 2
206 IF A$ < >"R" THEN 368
208 J = (XN >X2) +(YN >Y2): IF J = 0 OR J = 2 THEN I = YN:YN = Y2:Y2 = I
210 IF J = 1 THEN I = XN:XN = X2:X2 = I
212 GOTO 368
214 IF K = 178 THEN GOSUB 300: GOTO 288
216 IF K < >179 THEN 222
218 GOSUB 18: VTAB 22: HTAB 9: PRINT "XDRAW GRID NOW? (Y/N):";: GET A$: IF A$ < >"Y" THEN 282
219 POKE GF,0: SCALE= 191: ROT= 16: FOR I = 0 TO 200 STEP 100: XDRAW N4 AT I,0: NEXT : SCALE= 255: ROT= 0: XDRAW 4 AT 255,0: XDRAW 4 AT 255,100: SCALE= 24: XDRAW 4 AT 279,0: XDRAW 4 AT 279,100: SCALE= 1: FOR J = 0 TO 191 STEP 10: FOR I = 0 TO 279 STEP 10: XDRAW 4 AT I,J: NEXT : NEXT : SCALE= 5
220 FOR I = 50 TO 279 STEP 100: FOR J = 50 TO 191 STEP 100: ROT= 0: XDRAW N4 AT I +2,J: ROT= 16: XDRAW N4 AT I,J +2: NEXT : NEXT : ROT= 0: SCALE= 1: FOR I = 3 TO 279 STEP 3: XDRAW N4 AT I,191: NEXT : FOR I = 189 TO 3 STEP -3: XDRAW N4 AT 279,I: NEXT : XDRAW N4 AT 50,50: XDRAW N4 AT 50,50: POKE GT,0: GOTO 288
222 IF K < >182 THEN 250
224 POKE P1,0
226 GOSUB 18: PRINT "P = SEE PAGE 2 (THIS ^ IS PAGE 1.)": PRINT "S = SWITCH PAGE 1 & PAGE 2 IMAGES": PRINT "R = RELOCATE SECTION OF PAGE 1": PRINT "M = MERGE PAGE 1 ONTO PAGE 2 SELECT:";: GET A$: IF A$ = "6" THEN 226
228 IF A$ = "S" THEN GOSUB 474: GOTO 226
230 IF A$ < >"P" THEN 238
232 POKE P2,0: POKE GT,0: FOR I = 1 TO 999: NEXT : POKE GF,0: GET A$
234 POKE P2,0: FOR J = 1 TO 1: NEXT : POKE P1,0: IF PEEK(Q) <CC THEN 234
236 POKE CL,0: POKE GT,0: GOTO 226
238 IF A$ = "R" THEN 412
240 IF A$ < >"M" THEN 282
242 GOSUB 18: INVERSE : PRINT " MERGE PAGE 1 ONTO 2:";: NORMAL : PRINT " <RETURN>=CANCEL": PRINT "1=OPAQUE NON-BLACK 2=XDRAW": PRINT "3=OPAQUE BLACK 4=COMPARE/COMBINE";: VTAB 21: HTAB 23: GET A$: IF A$ = CHR$(13) THEN 226
278 POKE CL,0:J = K -176: IF J > = 0 AND J <9 THEN K = 197: POKE 33,20: HOME : POKE 33,40: VTAB 21: HTAB 1: PRINT " ERASE SCREEN<CTRL-M> IN COLOR #";J;"?<CTRL-M> (Y/N):";: HTAB 10: GET A$: PRINT A$: IF A$ = "Y" AND J <8 THEN HCOLOR= J: HPLOT 0,0 TO PEEK(224) + PEEK(225) *TF, PEEK(226): CALL 62454
280 IF J = 8 AND A$ = "Y" THEN POKE OB +3,1: POKE OB +4,2: POKE OB +10,32: CALL OB: POKE OB +10,64
282 GOTO 288
284 IF K = 180 THEN 302
286 IF PD <0 THEN VTAB 21: HTAB 1: CALL -958: INVERSE : VTAB 22: HTAB 11: PRINT G$;" UNPROGRAMMED KEY ";G$;: FOR I = 1 TO 666: NEXT : NORMAL
288 NORMAL : ROT= 0: SCALE= 1: POKE CL,0: POKE -16304,0:DR = -1: IF M$ = "D" THEN 368
290 IF M$ = "M" THEN 302
292 IF M$ = "T" THEN 476
294 POKE GT,0:KE = -1: FOR I = 21 TO 24: VTAB I: HTAB 1: PRINT SPC( 22): NEXT : HTAB 1: RETURN
296 FOR K = 1 TO 999: NEXT : RETURN
298 FOR K = 1 TO 1999: NEXT : RETURN
300 KE = KE * -1: POKE -16301 -(KE >0),0: RETURN
302 NORMAL :M$ = "M":TX = 0: GOSUB 18: PRINT "ALPHA PLOT : D = DRAWING MODE": PRINT "---------- : T = TYPING MODE": PRINT "COPYRIGHT : L = LOAD IMAGE FROM DISKBEAGLE BROS : S = SAVE IMAGE TO DISK";:I = 20
304 I = I +1 -4 *(I = 24): VTAB 24: HTAB 14: PRINT " :";: VTAB I -1: HTAB 14: PRINT " :";: VTAB I: HTAB 14: PRINT "->";: FOR J = 1 TO 99 +99 *(I = 24): NEXT :K = PEEK(Q): IF K <128 THEN 304
306 POKE CL,0: IF K >176 AND K <183 THEN ON K -176 GOTO 134,308,218,302,272,224
308 IF K = 178 THEN GOSUB 300: GOTO 304
310 A$ = CHR$(K -CC)
312 IF A$ = CHR$(0) THEN 264
314 IF A$ = "T" OR A$ = "D" THEN M$ = A$: GOTO 288
316 IF A$ = CHR$(4) OR A$ = CHR$(20) THEN M$ = CHR$( ASC(A$) +64): GOTO 288
318 IF A$ = "L" THEN 342
320 IF A$ = "S" THEN 332
322 KE = -1: POKE 49235,0: GOTO 304
324 VTAB 23: PRINT "TYPE "QT$"CAT"QT$" TO SEE CATALOG,": PRINT "OR <RETURN> TO CANCEL.";: VTAB 21: HTAB 22: INPUT ":";Q$: IF LEN(Q$) = 0 THEN 302
326 IF Q$ = "CAT" OR Q$ = "CATALOG" THEN TEXT : PRINT D$"CATALOG": FOR I = 1 TO 40: PRINT "-";: NEXT : PRINT "ANY KEY:";: CALL -756: POKE -16304,0: GOTO 318
328 IF A$ = "L" THEN 344
330 IF A$ = "S" THEN 334
332 GOSUB 18: PRINT "NAME OF IMAGE TO SAVE: ": GOTO 324
334 GOSUB 18: VTAB 22: PRINT "SAVE ";Q$: PRINT "FROM PAGE 1 OR 2?";: GET A$: IF A$ < > CHR$(13) AND A$ < >"1" AND A$ < >"2" THEN 334
360 POKE OB +3,1: POKE OB +4,1: POKE OB +5,0: POKE OB +6,4: POKE OB +7,255: POKE OB +8,7: POKE OB +9,0: POKE OB +10,8: CALL OB:A$ = " PAGE TWO ": FOR I = 2910 TO 2921:Q$ = MID$ (A$,I -2909,1): POKE I, ASC(Q$) -64 +64 *(Q$ = " "): NEXT
362 FOR I = 3038 TO 3049: POKE I,32: NEXT : FOR I = 2782 TO 2793: POKE I,32: NEXT : POKE OB +5,0: POKE OB +6,32: POKE OB +7,255: POKE OB +8,63: POKE OB +9,0: POKE OB +10,64
414 GOSUB 18: VTAB 21: PRINT "RELOCATE THIS SECTION ONTO PAGE 1 OR 2?";: FLASH : PRINT " ";: NORMAL : PRINT "(THIS IS PAGE 1.)": PRINT : PRINT "N = REMOVE NOTES <RETURN> = CANCEL";
416 MF = 1: GOSUB 90: GOSUB 90:PM = PEEK(Q) -176: IF PM < >1 AND PM < >30 AND PM < >2 AND PM < > -35 THEN 416
418 POKE CL,0: IF PM = 30 THEN GOSUB 300: GOTO 416
420 IF PM = -35 THEN 282
422 IF PM = -35 THEN GOSUB 18: PRINT "DEFINE RECTANGULAR AREA TO BE MOVED WITH XO CURSOR, AND SELECT 6-R AGAIN.": PRINT : PRINT "<RETURN>:";: GET A$:CU = 1:MF = 0: GOTO 282
424 GOSUB 90: IF PM = 2 THEN GOSUB 474
426 GOSUB 18: PRINT "USE KEYS TO MOVE TO NEW PAGE ";PM;" LOCATION.": PRINT "M = PERMANENT IMAGE MOVE.": PRINT "<RETURN> = CANCEL";
428 XL = XN:XH = X2: IF X2 <XN THEN XL = X2:XH = XN
430 YL = YN:YH = Y2: IF Y2 <YN THEN YL = Y2:YH = YN
432 GOSUB 90: GOSUB 90:K = PEEK(Q): IF K <CC THEN 432
434 POKE CL,0: IF K = 205 THEN 460
436 IF K = 206 OR K = 178 THEN GOSUB 300: GOTO 432
438 IF K = CM THEN XN = XL:X2 = XH:YN = YL:Y2 = YH: GOTO 460
460 POKE OM +13,PM -(K = CM AND PM = 2): IF PM = 2 THEN HOME : TEXT : GOSUB 474: POKE -16304,0: IF K < >CM THEN POKE P2,0
462 POKE OM +4,XL - INT(XL/TF) *TF: POKE OM +5, INT(XL/TF): POKE OM +6,YL: POKE OM +7,XH - INT(XH/TF) *TF: POKE OM +8, INT(XH/TF): POKE OM +9,YH:XL = XN:XH = X2: IF X2 <XN THEN XL = X2:XH = XN
464 YL = YN:YH = Y2: IF Y2 <YN THEN YL = Y2:YH = YN
490 IF IV = 2 THEN INVERSE : PRINT "INVERSE";: NORMAL
492 IF IV = 3 THEN FLASH : PRINT "XTYPE";: NORMAL : PRINT " ";
494 IF NOT TX THEN TX = 1: GOTO 512
496 VTAB 23: HTAB 35: GET A$: IF A$ = CHR$(15) THEN 496
498 IF A$ = "S" THEN TA = TA +1 -4 *(TA = 4): POKE OC +15,TA: GOTO 486
500 IF A$ = "M" THEN IV = IV +1 +(IV = 0) -4 *(IV = 3): POKE OC +13,IV: GOTO 486
502 IF A$ = "L" THEN LD = LD +1 -4 *(LD = 4): POKE OC +16,7 +LD: GOTO 486
504 IF A$ = "K" THEN KN = KN +1 -4 *(KN = 4): POKE OC +19,KN: GOTO 486
506 IF A$ = "R" THEN R = R +1 -4 *(R = 3): POKE OC +14,R: GOTO 486
508 IF A$ = "B" THEN A$ = "1"
510 IF A$ >"0" AND A$ <"7" THEN K = ASC(A$) +CC: ON K -176 GOTO 134,214,218,302,272,224
512 FOR I = 22 TO 24: VTAB I: HTAB 21: CALL -868: NEXT : VTAB 22: HTAB 15: PRINT "S": PRINT "M";: HTAB 15: PRINT "L": PRINT "R";: HTAB 15: PRINT "K";: HCOLOR= C
514 VTAB 22: HTAB 1: NORMAL : IF ES = 0 THEN PRINT "LOWER CASE ";
516 INVERSE : IF ES = 1 THEN PRINT "U";: NORMAL : PRINT "PPER CASE ";
518 IF ES = 2 THEN PRINT "UPPER";: NORMAL : PRINT " CASE ";
520 GOTO 524
522 IF ES = 1 THEN ES = 0: GOTO 514
524 TM = PEEK(O3):I = CB +CN *(ES = 0)
526 POKE O3,N3: POKE O2,I: CALL OC: POKE O2,BS: CALL OC: POKE O2,I: CALL OC: POKE O2,BS: CALL OC:K = PEEK(Q): IF K <CC THEN 526
528 POKE CL,0: POKE O3,TM:I = (K = 133 OR K = 134 OR K = 137): POKE O2,K +86 *(I >0) +((K >A OR I) AND NOT ES) *CS: CALL OC: IF K < >CD AND K < >SC AND K < >CC AND K < >CO THEN 522